快速統整一下,我們這14天已經將基礎部署的程式碼放到GitLab上,並由GitLab幫忙部署。他會自動幫我們建立EKS相關的服務。現在,我們要開始進行APP服務的設計。
首先,我們需要一個資料庫,這邊採用的是 RDS Aurora。
RDS是Amazon提供的 Paas服務,讓使用者可以使用雲端的關聯式資料庫。藉由RDS,你可以根據需求輕鬆擴展及調整容量
,有幾點要特別注意
我們引用 terraform的 aws modules
name:這個rds的名稱
engine:我們選用mysql,Aurora提供postgresql跟MySQL,選擇哪一種參考這邊:https://faq.postgresql.tw/postgresql-vs-mysql-vs-sql-server-vs-oracle
MySQL目前還不支援8,我們用最新版:2.10.2
db_parameter_group_name:參數組。因為RDS為Paas服務,我們無法控制OS層。藉由參數組,我們才可以做調整。
module "cluster" {
source = "terraform-aws-modules/rds-aurora/aws"
name = "test-aurora-db-postgres96"
engine = "aurora-mysql"
engine_version = "5.7.mysql_aurora.2.10.2"
instance_class = "db.r5.large"
instances = {
one = {}
}
autoscaling_enabled = true
autoscaling_min_capacity = 1
autoscaling_max_capacity = 5
vpc_id = module.vpc.vpc_id
subnets = module.vpc.private_subnets
allowed_security_groups = ["sg-12345678"]
allowed_cidr_blocks = ["10.20.0.0/20"]
storage_encrypted = true
apply_immediately = true
monitoring_interval = 10
db_parameter_group_name = "default.aurora-mysql5.7"
db_cluster_parameter_group_name = "default.aurora-mysql5.7"
enabled_cloudwatch_logs_exports = ["general"]
tags = {
Environment = "production"
Terraform = "true"
}
}
在一個cluster中,有多個配置的方式可以用來建立instances
Create homogenous cluster of any number of instances
instance_class = "db.r6g.large"
instances = {
one = {}
two = {}
three = {}
}
透過autoscaling建立同質的擴充cluster,至少一個writer是必須的
instance_class = "db.r6g.large"
instances = {
one = {}
}
autoscaling_enabled = true
autoscaling_min_capacity = 1
autoscaling_max_capacity = 5
instance_class指定的機型會是擴展的機型
enabled_cloudwatch_logs_exports
要export到cloudwatch的log type。如果沒有設定,就不會export logs。有這些可以選擇**audit
**, error
, general
, slowquery
, postgresql
參考官網module:
https://registry.terraform.io/modules/terraform-aws-modules/rds-aurora/aws/latest